#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>

int main()
{
	char arr[30] = "this is a test";

	fprintf(stdout, "%s", arr);
	fflush(stdout);

	int fd = open("test.txt", O_WRONLY | O_CREAT,  S_IRUSR | S_IWUSR | S_IRGRP);
        //此时fd的值因该是3，因为前三个是留给标准输入，输出，错误的

	dup2(fd, 1); //这里利用dup2是fd中文件覆盖标准输出

        fprintf(stdout, "%s", arr);

	// printf("%s",arr);//往标准输出中打印字符串
	//write(fd, arr, sizeof(arr));//往fd中输出字符串

        //我们能在test.txt中看到arr打印两次
	fflush(stdout);
	return 0;
}
